package task_process

import (
	"github.com/hibiken/asynq"
	"github.com/patrickmn/go-cache"
	"sdapiproject/utils"
	"time"
)

//
//func GetRedisCon() *asynq.RedisClientOpt {
//	ret, _ := gcache.Get("task_queue_redis")
//	if ret == nil {
//		retitem := new(asynq.RedisClientOpt)
//		redisInfo := utils.Cfg.TaskQueue.Redis
//		pwd := utils.Cfg.TaskQueue.Pwd
//		dbnum := utils.Cfg.TaskQueue.Dbnum
//		poolSize := utils.Cfg.TaskQueue.PoolSize
//
//		retitem.Addr = redisInfo
//		retitem.Password = pwd
//		retitem.PoolSize = poolSize
//		retitem.DB = dbnum
//		gcache.Set("task_queue_redis", retitem, 0)
//		return retitem
//	} else {
//		return ret.(*asynq.RedisClientOpt)
//	}
//}

var c = cache.New(5*time.Minute, 10*time.Minute)

func GetRedisCon() *asynq.RedisClientOpt {
	value, found := c.Get("task_queue_redis")
	if !found {
		retitem := new(asynq.RedisClientOpt)
		redisInfo := utils.Cfg.TaskQueue.Redis
		pwd := utils.Cfg.TaskQueue.Pwd
		dbnum := utils.Cfg.TaskQueue.Dbnum
		poolSize := utils.Cfg.TaskQueue.PoolSize

		retitem.Addr = redisInfo
		retitem.Password = pwd
		retitem.PoolSize = poolSize
		retitem.DB = dbnum
		c.Set("task_queue_redis", retitem, cache.DefaultExpiration)
		return retitem
	} else {
		return value.(*asynq.RedisClientOpt)
	}
}
